package com.travel.service.impl;

import com.travel.domain.VO.ProductVO;
import com.travel.domain.entity.Category;
import com.travel.domain.entity.Product;
import com.travel.domain.entity.ProductInfo;
import com.travel.mapper.ProductMapper;
import com.travel.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

@Service
public class ProductServiceImpl implements ProductService {
    @Autowired
    private ProductMapper productMapper;
    @Override
    public List<ProductVO> selectAllProducts() {
        // 查询所有分类
        List<Category> categoryList = productMapper.selectAllCategories();

        // 创建返回的 ProductVO 列表
        List<ProductVO> productVOList = new ArrayList<>();

        // 遍历所有分类，获取分类下的产品
        for (Category category : categoryList) {
            List<Product> productList = productMapper.selectProductsByCategoryId(category.getId());

            ProductVO productVO = ProductVO.builder()
                    .categoryId(category.getId())
                    .categoryName(category.getName())
                    .products(productList)
                    .build();

            // 将每个分类下的 ProductVO 添加到列表中
            productVOList.add(productVO);
        }

        return productVOList;
    }

    @Override
    public ProductInfo getProductInfo(Long productId) {
        // 查询商品基本信息
        ProductInfo product = productMapper.selectProductById(productId);

        // 查询商品的图片集合
        List<String> imageList = productMapper.selectImagesByProductId(productId);

        // 将图片集合设置到 product 对象中
        product.setDataList(imageList);

        return product;
    }
}
